From 720a7a25f73faee37a976f57ae34115e85e1551b Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 18 Feb 2009 08:57:56 +0000 Subject: [PATCH] vtd: fix/cleanup minor issues with multi-page qinval support Remove MAX_QINVAL_PAGES. Rely on whoever changes NUM_QINVAL_PAGES to change corresponding IQA_REG_QS value also. Signed-off-by: Allen Kay --- xen/drivers/passthrough/vtd/iommu.h | 2 +- xen/drivers/passthrough/vtd/qinval.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/xen/drivers/passthrough/vtd/iommu.h b/xen/drivers/passthrough/vtd/iommu.h index 46eb4cdb40..fd8b9e124d 100644 --- a/xen/drivers/passthrough/vtd/iommu.h +++ b/xen/drivers/passthrough/vtd/iommu.h @@ -397,8 +397,8 @@ struct poll_info { u32 udata; }; -#define MAX_QINVAL_PAGES 8 #define NUM_QINVAL_PAGES 1 +#define IQA_REG_QS 0 // derived from NUM_QINVAL_PAGES per VT-d spec. #define QINVAL_ENTRY_NR (PAGE_SIZE_4K*NUM_QINVAL_PAGES/sizeof(struct qinval_entry)) #define qinval_present(v) ((v).lo & 1) #define qinval_fault_disable(v) (((v).lo >> 1) & 1) diff --git a/xen/drivers/passthrough/vtd/qinval.c b/xen/drivers/passthrough/vtd/qinval.c index 6f2d576f84..2e73cd0b63 100644 --- a/xen/drivers/passthrough/vtd/qinval.c +++ b/xen/drivers/passthrough/vtd/qinval.c @@ -445,8 +445,7 @@ int qinval_setup(struct iommu *iommu) * registers are automatically reset to 0 with write * to IQA register. */ - if ( NUM_QINVAL_PAGES <= MAX_QINVAL_PAGES ) - qi_ctrl->qinval_maddr |= NUM_QINVAL_PAGES - 1; + qi_ctrl->qinval_maddr |= IQA_REG_QS; dmar_writeq(iommu->reg, DMAR_IQA_REG, qi_ctrl->qinval_maddr); /* enable queued invalidation hardware */ -- 2.30.2